System.Collections.ObjectModel.ObservableCollection<T> 클래스

이 문서에서는 이 API에 대한 참조 설명서에 대한 추가 설명서를 제공합니다.

클래스는 ObservableCollection<T> 항목이 추가 또는 제거되거나 전체 목록을 새로 고칠 때 알림을 제공하는 동적 데이터 컬렉션을 나타냅니다.

대부분의 경우 작업하는 데이터는 개체 컬렉션입니다. 예를 들어 데이터 바인딩의 일반적인 시나리오는 예를 ListBoxListView사용 ItemsControl 하거나 TreeView 레코드 컬렉션을 표시하는 것입니다.

IEnumerable 인터페이스를 구현하는 컬렉션을 열거할 수 있습니다. 그러나 컬렉션에서 삽입 또는 삭제가 발생할 때마다 UI가 자동으로 업데이트되도록 동적 바인딩을 설정하려면 컬렉션이 INotifyCollectionChanged 인터페이스를 구현해야 합니다. 이 인터페이스는 기본 컬렉션이 CollectionChanged 변경될 때마다 발생해야 하는 이벤트인 이벤트를 노출합니다.

ObservableCollection<T> 클래스는 인터페이스를 구현하는 데이터 컬렉션 형식입니다INotifyCollectionChanged.

고유한 컬렉션을 구현하기 전에 ObservableCollection<T>을 사용하거나 List<T>, Collection<T>BindingList<T>와 같은 기존 컬렉션 클래스 중 하나를 사용하는 것이 좋습니다. 고급 시나리오가 있고 고유한 컬렉션을 구현하려는 경우 인덱스로 개별적으로 액세스할 수 있는 제네릭이 아닌 개체 컬렉션을 제공하는 컬렉션을 사용하는 IList것이 좋습니다. 구현은 IList 데이터 바인딩 엔진에서 최상의 성능을 제공합니다.

참고 항목

바인딩 소스 개체에서 바인딩 대상으로 데이터 값 전송을 완전히 지원하려면 바인딩 가능한 속성을 지원하는 컬렉션의 각 개체가 인터페이스와 같은 INotifyPropertyChanged 적절한 속성 변경 알림 메커니즘을 구현해야 합니다.

자세한 내용은 데이터 바인딩 개요의 "컬렉션에 바인딩"을 참조하세요.

XAML 사용량에 대한 참고 사항

ObservableCollection<T> 은 버전 3.0 및 3.5의 WPF(Windows Presentation Foundation)에서 XAML 개체 요소로 사용할 수 있습니다. 그러나 사용량에는 상당한 제한이 있습니다.

  • ObservableCollection<T>제네릭 ObservableCollection<T>x:TypeArguments 제한된 형식을 지정하는 데 사용해야 하는 특성은 루트 요소의 개체 요소에서만 지원되므로 루트 요소여야 합니다.

  • 이 XAML 파일에 대한 빌드 작업 또는 XAML을 컴파일하는 다른 빌드 작업이어야 Page 하는 특성을 선언 x:Class 해야 합니다.

  • ObservableCollection<T> 는 처음에 기본 XML 네임스페이스에 매핑되지 않은 네임스페이스 및 어셈블리에 있습니다. 네임스페이스 및 어셈블리에 대한 접두사를 매핑한 다음 개체 요소 태그 ObservableCollection<T>에서 해당 접두사를 사용해야 합니다.

사용 하는 더 간단한 방법을 ObservableCollection<T> 에서 파생 되는 고유한 사용자 지정 된 제네릭이 아닌 컬렉션 클래스를 선언 하는 애플리케이션에서 XAML에서 기능 ObservableCollection<T>, 특정 형식으로 제한 한 합니다. 그런 다음, 이 클래스를 포함하는 어셈블리를 매핑하고 XAML에서 개체 요소로 참조합니다.